home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1993 / MacHack 1993.toast / MacHack™ 1987-1992 / MacHack™ '91 / Proceedings '91 / MPW Stand-Alone Libraries / UMakeSA.p < prev    next >
Encoding:
Text File  |  1991-06-13  |  2.9 KB  |  90 lines  |  [TEXT/MPS ]

  1. {[a-,body+,h-,o=100,r+,rec+,t=4,u+,#+,j=20/57/1$,n+]}
  2. {$D+}
  3.  
  4. {------------------------------------------------------------------------------
  5. MakeSA.p    Implements a tool for massaging a simple application into a
  6.             single stand alone code resource.
  7.             
  8.     Syntax of MakeSA:
  9.     
  10.         MakeSA [options] filename [filenames…]
  11.     
  12.     Options:
  13.     
  14.         -ct TYPE ---- set rsrc type of non-main code segments  (default = 'DUDE')
  15.         -fc TYPE ---- set the creator attribute of the file    (default = 'RSED')
  16.         -ft TYPE ---- set the type attribute of the file       (default = 'rsrc')
  17.         -help ------- return this help text
  18.         -id integer - set the rsrc ID of the MAIN segment      (default = 128)
  19.         -mt TYPE ---- set the rsrc type of the MAIN segment    (default = 'DUDE')
  20.         -mn Name ---- set the rsrc name of the MAIN segment    (default = '')
  21.         -o filename - Name of the output file                  (default = input.dude; not done yet)
  22.         -[No]S ------ Allow for multi-segmented code           (default = -NoS)
  23.         -[No]P ------ report progress to stdout                (default = -NoP)
  24.         -[No]T ------ report processing time                   (default = -NoT)
  25.             
  26. NOTE - tools cannot currently be built with -debug… Sorry!
  27. ------------------------------------------------------------------------------}
  28. UNIT UMakeSA;
  29.  
  30. INTERFACE
  31.  
  32. USES
  33.     { • MacApp }
  34.     UMacApp,
  35.  
  36.     { • Building Blocks }
  37.  
  38.     { • Required for this unit's interface }
  39.     UAssociation,
  40.  
  41.     { • Implementation use }
  42.     CursorCtl, Signal, PasLibIntf, IntEnv, ErrMgr, Events, OSUtils, Memory,
  43.     Resources, Fonts, Packages, ToolUtils, Errors,
  44.  
  45.     { • Inherits from }
  46.     UMPWTool, UMakeSAGlobals, UMultiSegSA, USingleSegSA;
  47.  
  48. CONST
  49.  
  50.     { • Tool Keyword Constants • }
  51.     kwFType                = 1;        { File type }
  52.     kwFCreator            = 2;        { File creator }
  53.     kwMType                = 3;        { Resource type of main segment }
  54.     kwMId                = 4;        { Resource ID of main segment }
  55.     kwMName                = 5;        { Resource name of main segment }
  56.     kwCType                = 6;        { Resource type of non-main code segments }
  57.     kwSeg                = 7;        { Multiple segments }
  58.     kwNoSeg                = 8;        { Merge segments into MAIN }
  59.     kwOut                = 9;        { Output file name }
  60.  
  61. TYPE
  62.  
  63.     TMakeSA            = OBJECT (TMPWTool)
  64.         fFileType:        OSType;
  65.         fFileCreator:    OSType;
  66.         fMainType:        ResType;
  67.         fMainID:        Integer;
  68.         fMainName:        StringHandle;
  69.         fDoMultiSeg:    Boolean;
  70.         fOtherSegsType: ResType;
  71.         fFileNames:        TDynamicArray;
  72.  
  73.         PROCEDURE TMakeSA.IMakeSA;
  74.         PROCEDURE TMakeSA.DoProcessFileArg(arg: Str255); OVERRIDE;
  75.         PROCEDURE TMakeSA.DoProcessOptionArg(kw: integer); OVERRIDE;
  76.         PROCEDURE TMakeSA.DoShowUsage; OVERRIDE;
  77.         PROCEDURE TMakeSA.DoShowProgress(aStr: Str255);
  78.         PROCEDURE TMakeSA.DoToolAction; OVERRIDE;
  79.         PROCEDURE TMakeSA.InstallKeyWords; OVERRIDE;
  80.         PROCEDURE TMakeSA.ForEachFileDo(PROCEDURE DoToFile(aFile: FileSpec));
  81.     END;
  82.  
  83. VAR
  84.     gMakeSA:    TMakeSA;    { One global! References the tool so we can some methods. }
  85.  
  86. {--------------------------------------------------------------------------------------------------}
  87.  
  88. IMPLEMENTATION
  89.     {$I UMakeSA.incl.p}
  90. END.